package com.glsc.ngateway.opmanage.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@AllArgsConstructor
@NoArgsConstructor
@Data
public class DigitalKeyFeesDto implements Serializable {
    private static final long serialVersionUID = 6130497165969616104L;

    @ApiModelProperty(value = "id")
    private String id;

    @ApiModelProperty(value = "内部编码")
    private String brnOrgNo;

    @ApiModelProperty(value = "财务代码")
    private String finCode;

    @ApiModelProperty(value = "营业部名称")
    private String brnOrgNm;


    //深交所年费数据
    @ApiModelProperty(value = "本年度年费-深交所")
    private BigDecimal annualFeeSz;

    @ApiModelProperty(value = "抵扣上年度增值税-深交所")
    private BigDecimal previousAddedTaxSz;

    @ApiModelProperty(value = "分摊金额-深交所")
    private BigDecimal assessedAmountSz;

    @ApiModelProperty(value = "最终分摊结果-深交所")
    private BigDecimal finalAllocationResultSz;

    @ApiModelProperty(value = "本年度增值税-深交所")
    private BigDecimal annualAddedTaxSz;



    //上交所年费数据
    @ApiModelProperty(value = "本年度年费-上交所")
    private BigDecimal annualFeeSh;

    @ApiModelProperty(value = "本年度增值税-上交所")
    private BigDecimal annualAddedTaxSh;

    @ApiModelProperty(value = "抵扣上年度增值税-上交所")
    private BigDecimal previousAddedTaxSh;

    @ApiModelProperty(value = "分摊金额-上交所")
    private BigDecimal assessedAmountSh;

    @ApiModelProperty(value = "最终分摊结果-上交所")
    private BigDecimal finalAllocationResultSh;

    @ApiModelProperty(value = "OA部门名称")
    private String oaDepartmentName;

    @ApiModelProperty(value = "OA部门领导账号")
    private String oaLeadAccount;

    @ApiModelProperty(value = "邮件发送结果说明")
    private String emailSendRes;


    //北交所年费数据
    @ApiModelProperty(value = "本年度年费-北交所")
    private BigDecimal annualFeeBj;

    @ApiModelProperty(value = "本年度增值税-北交所")
    private BigDecimal annualAddedTaxBj;

    @ApiModelProperty(value = "抵扣上年度增值税-北交所")
    private BigDecimal previousAddedTaxBj;

    @ApiModelProperty(value = "分摊金额-北交所")
    private BigDecimal assessedAmountBj;

    @ApiModelProperty(value = "最终分摊结果-北交所")
    private BigDecimal finalAllocationResultBj;




    @ApiModelProperty(value = "计费年度 格式：yyyy")
    private String annualFeeDate;

    @ApiModelProperty(value = "状态：0待发送 1已发送")
    private String status;

    @ApiModelProperty(value = "邮件id")
    private String emailId;


    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    private LocalDateTime createTime;

    @ApiModelProperty(value = "操作时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    private LocalDateTime opTime;

}
